#include <QCoreApplication>  // Lambda表达式+递归：实现斐波那契数列
#include <iostream>
#include <functional>


int main(int argc, char *argv[])  // Lambda表达式+递归：结合Lambda表达式和函数递归的一种函数模型
{
    std::function<int(int)> fab;  // 先声明一个类（函数对象），function是定义一个模板的类。
    fab = [&fab](int i){
        if (i== 0 || i == 1){
            return i;
        }
        else {
            return fab(i - 1) + fab(i - 2);
        }
    };

    int result = fab(10); // f(10)=55
    std::cout << result <<  std::endl;
    system("pause");      // 不要在return后加，否则无效！
    return 0;
}
